package com.naiterui.ehp.bs.recommend.service;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.naiterui.common.repository.page.PageParamVO;
import com.naiterui.common.repository.page.PageVO;
import com.naiterui.ehp.bp.bo.recommend.MedicationRecomBO;
import com.naiterui.ehp.bp.bo.recommend.MedicationRecomDetailBO;
import com.naiterui.ehp.bp.bo.recommend.MedicationRecomPaBO;

/**
 * 医生服务相关推荐接口(hessian接口迁移)
 *
 * @author guoyongxiang
 * @date 2019-06-28 15:00
 * @since 1.0.0
 */
public interface IDrPtRecomService {

    /**
     * 根据推荐ID获取详情列表
     *
     * @param recommendIds
     * @return
     */
    List<MedicationRecomDetailBO> getRecomDetails(Set<Long> recommendIds);

    /**
     * 获取指定日期范围类的推荐
     *
     * @param recomStatus
     * @param start
     * @param end
     * @return
     */
    List<MedicationRecomBO> getSpecifydayRecom(List<Integer> recomStatus, Date start, Date end);

    /**
     * 患者APP-获取医生推荐列表 IRecomService.getRecomDrugList()
     *
     * @param patientId
     * @param doctorId
     * @param consultId
     * @param page
     * @param num
     * @return
     * @Author mudou
     * @Date 2017年8月28日
     * @since 2.9.0
     */
    PageVO<MedicationRecomPaBO> getRecomDrugList(Long patientId, Long doctorId, Long consultId, int page, int num);

    /**
     * 获取患者处方列表
     *
     * @param patientId
     * @param paramVO
     * @return
     */
    PageVO<MedicationRecomPaBO> getPatientRecomList(Long patientId, PageParamVO paramVO, Integer status, Integer type);

    /**
     * 批量获取处方状态
     *
     * @param recomIds
     * @return
     */
    Map<Long, Integer> getRecomStatusMap(Set<Long> recomIds);
}
